package com.coolt.server.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;

import com.coolt.domain.Comunidade;

public class ComunidadeDAO {

	public static List<Comunidade> listar(Comunidade comunidade) {
		return listar(comunidade, 0, 0);
	}

	public static List<Comunidade> listar(Comunidade comunidade, int tamPagina,
			int pageNow) {

		List<Comunidade> lista = null;

		DetachedCriteria criterialista = DetachedCriteria
				.forClass(Comunidade.class);

		criterialista.add(Example.create(comunidade).ignoreCase().enableLike(
				MatchMode.ANYWHERE));

		criterialista.addOrder(Order.desc("dtcomunidade"));

		Session session = HibernateUtil.getSession();
		session.beginTransaction();

		Criteria criteria = criterialista.getExecutableCriteria(session);
		if (tamPagina > 0) {
			criteria.setMaxResults(tamPagina);
			if (pageNow > 1) {
				criteria.setFirstResult((pageNow - 1) * tamPagina);
			}
		}
		lista = criteria.list();

		session.getTransaction().commit();

		return lista;
	}

}
